package com.time.client.infra.basic.service.impl;

import com.time.client.infra.basic.entity.Tag;
import com.time.client.infra.basic.mapper.TagDao;
import com.time.client.infra.basic.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 文章标签表(Tags)表服务实现类
 *
 * @author HuangQi
 * @since 2025-09-30 16:57:35
 */
@Service("tagService")
public class TagServiceImpl implements TagService {

    @Autowired
    private TagDao tagsDao;

    /**
     * 通过ID查询单条数据
     *
     * @param tagId 主键
     * @return 实例对象
     */
    @Override
    public Tag queryById(Long tagId) {
        return this.tagsDao.queryById(tagId);
    }

    /**
     * 分页查询
     *
     * @param tag 筛选条件
     * @return 查询结果
     */
    @Override
    public List<Tag> queryByCondition(Tag tag) {
        return this.tagsDao.queryAllByLimit(tag);
    }

    /**
     * 新增数据
     *
     * @param tag 实例对象
     * @return 实例对象
     */
    @Override
    public Integer insert(Tag tag) {
        return this.tagsDao.insert(tag);
    }

    /**
     * 修改数据
     *
     * @param tag 实例对象
     * @return 实例对象
     */
    @Override
    public Integer update(Tag tag) {
        return this.tagsDao.update(tag);
    }

    /**
     * 通过主键删除数据
     *
     * @param tagId 主键
     * @return 是否成功
     */
    @Override
    public Boolean deleteById(Long tagId) {
        return this.tagsDao.deleteById(tagId) > 0;
    }

    @Override
    public Tag queryByTagName(String tagName) {
        return this.tagsDao.queryByTagName(tagName);
    }

    @Override
    public Integer countAll() {
        return this.tagsDao.countAll();
    }

    @Override
    public List<Tag> queryPage(Tag tag, Integer start, Integer pageSize) {
        return this.tagsDao.queryPage(tag, start, pageSize);
    }

    @Override
    public List<Tag> queryByHot() {
        return this.tagsDao.queryByHot();
    }
}
